package com.hxexp.weixin.mvc.station.service;

import java.util.List;

import com.hxexp.weixin.common.exception.ServiceException;
import com.hxexp.weixin.hpe.api.arrivestations.model.ArriveStationsParamBean;
import com.hxexp.weixin.hpe.api.arrivestations.model.ArriveStationsResultBean;
import com.hxexp.weixin.hpe.api.startstations.model.StartStationsBean;
import com.hxexp.weixin.hpe.api.startstations.model.StartStationsResultBean;

/**
 * 车站服务
 * @author li.jiang
 *
 */
public interface StationService {
    /**
     * 出发站列表
     * @return 返回结果(0:到达站列表正常返回)
     * @throws ServiceException
     */
    public StartStationsResultBean getStartStations(String groupId) throws ServiceException;

    /**
     * 过滤出发站数据，返回指定城市缩写的出发站
     *
     * @param cityInitial
     *            城市缩写
     * @param startStationsResult
     *            出发站数据
     * @return 出发站列表
     * @throws ServiceException
     */
    public List<StartStationsBean> includeStartStations(String cityInitial, List<StartStationsBean> startStationList) throws ServiceException;

    /**
     * 过滤出发站数据，排除指定城市缩写的出发站，排除的城市缩写在配置文件中指定
     *
     * @param startStationsResult
     *            出发站数据
     * @return 出发站列表
     * @throws ServiceException
     */
    public List<StartStationsBean> excludeStartStations(List<StartStationsBean> startStationList) throws ServiceException;

    /**
     * 到达站列表
     *
     * @param arriveStationsParamBean
     *            到达站查询参数
     * @return 返回结果(0:到达站列表正常返回)
     * @throws ServiceException
     */
    public ArriveStationsResultBean getArriveStations(ArriveStationsParamBean arriveStationsParamBean) throws ServiceException;
}
